package com.soladhoc.annonces.client.gin;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.inject.client.AsyncProvider;
import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.gwtplatform.dispatch.client.gin.DispatchAsyncModule;
import com.gwtplatform.mvp.client.proxy.PlaceManager;
import com.soladhoc.annonces.client.resources.Resources;
import com.soladhoc.annonces.client.ui.AnnoncePresenter;
import com.soladhoc.annonces.client.ui.AnnoncesListPresenter;
import com.soladhoc.annonces.client.ui.MainPagePresenter;
import com.soladhoc.annonces.client.ui.OAuthPresenter;

@GinModules({ DispatchAsyncModule.class, ClientModule.class })
public interface ClientGinjector extends Ginjector {

	EventBus getEventBus();

	PlaceManager getPlaceManager();
	
	Resources getResources();

	AsyncProvider<MainPagePresenter> getMainPagePresenter();

	AsyncProvider<OAuthPresenter> getOAuthPresenter();

	AsyncProvider<AnnoncePresenter> getAnnoncePresenter();

	AsyncProvider<AnnoncesListPresenter> getAnnoncesListPresenter();
}
